<?php

class Addon
{
    protected static $_dbh;
    
    
    public function __construct()
    {
        self::$_dbh = Framework_Registry::get('dbh');
    }
    
   /**
	 * получаем все смайлы/флаги
	 * @param int $smile_type
	 * @return
	 * @author kiote 
	 */
	public function getAllSmiles($smile_type = 1)
	{
		$rows = self::$_dbh->select("SELECT * FROM smile
									WHERE smile_type_id = ?",$smile_type);
		return $rows;
	} 
	
	/**
	 * получаем все фразы
	 * @return
	 * @author kiote 
	 */
	public function getAllPhrases()
	{
		return self::$_dbh->select("SELECT * FROM phrase");
	} 
	
	/**
	 * изменяем смайл (текст)
	 * @param int $smile_id
	 * @param str $smile_text
	 */
	public function setSmile($smile_id, $smile_text)
	{
		if ( ($smile_text == '')) return false;
		$row = @self::$_dbh->query("UPDATE smile 
										SET smile_text = ? 
										WHERE smile_id = ?",
									$smile_text, $smile_id);
		return $row;
	}
	
	public function newPhrase()
	{
		$row = self::$_dbh->query("INSERT INTO phrase () VALUES ()");
		return $row;
	}
	
	/**
	 * изменяем текст фразы
	 * @param int $phrase_id
	 * @param str $phrase_text
	 */
	public function setPhrase($phrase_id, $phrase_text)
	{
		if ( ($phrase_text == '')) return false;
		$row = @self::$_dbh->query("UPDATE phrase 
										SET phrase_text = ? 
										WHERE phrase_id = ?",
									$phrase_text, $phrase_id);
		return $row;
	} 
	
	/**
	 * читаем каталог со смайлами
	 * @param str $smile_dir директория со смайлами
	 * @param int $smile_type тип смайла
	 * @return array|bool $files
	 */
	public static function readSmile($smile_dir, $smile_type = 1)
	{
		if (!is_dir($smile_dir))
		{
			 return false; 
		}
		$files = scandir($smile_dir);
		$prefix = 'flag_';
		if ($smile_type == 2) 
		{
			foreach ($files as &$file)
			{
				if (strpos($file,$prefix) === false) $file = '.';
			}
		} else {
			foreach ($files as &$file)
			{
				if (strpos($file,$prefix) === 0) $file = '.';
			}
		}
		return $files;
	}
	
	/**
	 * обновляем смайлы в базе
	 * @param array $smile_files массив с именами файлов смайлов
	 * @param int $smile_type тип смайла
	 * @return 
	 */
	public static function updateSmile($smile_files, $smile_type = 1)
	{
		Framework_Registry::get('dbh')->query("DELETE FROM smile
												WHERE smile_type_id = ?",$smile_type);
		foreach ($smile_files as $file)
		{
			if ($file!=='.' && $file!=='..')
				Framework_Registry::get('dbh')->
					query("INSERT INTO smile (smile_file, smile_type_id) VALUES (?,?)",
							$file, $smile_type);
		}
	}
    
}